/**
 * 获取所有的根节点，即根机构  并放到option下
 * @param btn 自身 this
 * @param optionStr 默认的option
 * @param id 要将数据添加到哪一个id下，只限 select 标签
 */
function getAllRootNode(btn, optionStr, id) {
    if (checkNull((id))){
        alert("参数异常");
        return;
    }
    //加载层
    var index = layer.load(0, {shade: false}); //0代表加载的风格，支持0-2

    var url = "/main/getAllRootNode.php";
    $.ajax({
        url: url,
        type:"get",
        dataType:"json",
        data:"",
        success:function(data){
            if (data.status == "success"){
                var obj = data.object;
                var str = "";
                if (obj != null){
                    //只允许这个事件执行一次，对 该事件清空,防止冒泡
                    btn.onclick = null;
                    removeOptionAll(id);
                    if (!checkNull(optionStr)){
                        str += optionStr;
                    }
                    for (var i = 0; i < obj.length; i ++){
                        var baseinfo = obj[i];
                        str += "<option class=\"selectOpenStyle\" value='" + baseinfo.id + "'>" + baseinfo.name + "</option>>"
                    }
                }
                $("#" + id).append(str);

            } else if (data.status == 'error'){
                alert(data.msg);
            } else {
                alert("未知情况");
            }
            //关闭弹出层
            layer.close(index);
        },
        error:function(e){
            //关闭弹出层
            layer.close(index);
            alert("错误！！" + e);
        }

    });
}


/**
 * 当是根机构的时候的一些数据处理
 * num 1 是根机构 2 不是根机构
 */
function isOrNoRootNode(num) {
    //是根机构
    if (1 === num){
        //设置是机构还是部门 选中为 是机构
        $("#isDepOrOrg2").removeAttr("checked");
        $(":radio[name='isDepOrOrg'][value='" + 1 + "']").prop("checked", "checked");
        //隐藏隶属机构和部门选项 并清空数据
        removeOptionAll("fatherNode");
        $("#fatherNodeDiv").hide();
        // document.getElementById("fatherNodeDiv").style.display="inline";
    } else if (2 == num){
        //不设置是机构还是部门 不进行选中操作
        $("#isDepOrOrg1").removeAttr("checked");
        $("#isDepOrOrg2").removeAttr("checked");
        //显示隶属机构和部门选项
        $("#fatherNodeDiv").show();
        // document.getElementById("fatherNodeDiv").style.display="none";
    }
}

/**
 * 新增机构的时候数据校验
 * 返回 false 校验不通过 true 校验OK
 */
function addCheck() {
    var name = $("#name").val();
    if (checkNull(name)){
        alert("机构名不能为空");
        return false;
    }
    var isRoot = $('input:radio[name="isRoot"]:checked').val();
    if(isRoot == null){
        alert("请选择 是否根机构");
        return false;
    }
    var isDepOrOrg = $('input:radio[name="isDepOrOrg"]:checked').val();
    if(isDepOrOrg == null){
        alert("请选择 是机构还是部门");
        return false;
    }
    if (isDepOrOrg == 2 && isRoot == 1){
        alert("你选择的是根机构并且选择了是部门，请确认！");
        return false;
    }
    var isSecret = $('input:radio[name="isSecret"]:checked').val();
    if(isSecret == "1"){
        var secretGrade = $("#secretGrade").val();
        if (checkNull(secretGrade) || secretGrade == "-1"){
            alert("你已选择为保密单位，请选择保密等级！");
            return false;
        }
        var isAuthorize = $('input:radio[name="isAuthorize"]:checked').val();
        if(isAuthorize == null){
            alert("你已选择为保密单位，请选择 是否需要授权才能访问");
            return false;
        }
        if (isAuthorize ==  "1"){
            var callGrade = $("#callGrade").val();
            if (checkNull(callGrade) || callGrade == "-1"){
                alert("你已选择为保密单位，请选择授权等级！");
                return false;
            }
        }

    } else {
        //对保密数据进行清理，防止选择了否却提交了数据
        removeOptionAll("secretGrade");
        $("#isAuthorize1").removeAttr("checked");
        $("#isAuthorize2").removeAttr("checked");
        $("#callGrade").val("-1");
    }
    var responsibility = $("#responsibility").val();
    if (checkNull(responsibility)){
        alert("你填写机构|部门职责！");
        return false;
    }
    return true;
}


/**
 * 关闭弹出层
 */
function colsePage() {
    //关闭页面
    var nodeIndex = parent.layer.getFrameIndex(window.name);
    parent.layer.close(nodeIndex);
}

/**
 * 添加或更新 一个机构
 */
function addOrUpdOraganization(){
    if (!addCheck){
        return;
    }
    //注意，这里是获取对象，不是用值
    var form = document.getElementById("formOraganization");
    var formData = new FormData(form);
    //加载层
    var index = layer.load(0, {shade: false}); //0代表加载的风格，支持0-2

    var url = "/main/addOrUpdOraganization.php";
    $.ajax({
        url: url,
        type:"post",
        dataType:"json",
        data:formData,
        processData: false,  // 告诉jQuery不要去处理发送的数据
        contentType: false,   // 告诉jQuery不要去设置Content-Type请求头
        success:function(data){
            if (data.status == "success"){

                var zTree = parent.$.fn.zTree.getZTreeObj("treeContainer");
                //获取选中的节点
                var node = zTree.getSelectedNodes();
                //组装数据
                var obj = data.object;
                var newNode = {"id":obj.id, "name":obj.name, "pId":obj.pId};

                alert(data.msg);
                if (data.code == "add"){
                    //唯一标识
                    var id = node[0].id;
                    //动态添加数据
                    if (node.length > 0){
                        newNode = zTree.addNodes(node[0], newNode);
                    }

                } else if (data.code == "upd"){
                    // var nodes = zTree.getNodes();获取到根节点
                    if (node.length > 0) {
                        node[0].name = obj.name;
                        node[0].id = obj.id;
                        node[0].pId = obj.pId;
                        //更新节点
                        zTree.updateNode(node[0]);
                    }

                } else if (data.code == "son"){
                    if (node.length > 0){
                        parent.window.location.reload(); 
                    }

                } else {
                    alert("新增或更新成功");
                }

                //关闭弹出层
                colsePage();

            } else if (data.status == 'error'){
                alert(data.msg);
            } else {
                alert("未知情况");
            }
            //关闭弹出层
            layer.close(index);
            // 刷新当前页面.
            // window.location.reload();

        },
        error:function(e){
            //关闭弹出层
            layer.close(index);
            alert("错误！！" + e);
        }

    });
}



/**
 * 选择非授权才能访问的时候的操作
 */
function isNoisAuthorize() {
    $("#callGrade").val("-1");
    $("#callGradeDiv").hide();
}

/**
 * 选择是授权才能访问的时候
 */
function isIsAuthorize() {
    $("#callGradeDiv").show();
}

/**
 * 选择保密机构的时候对保密部分的操作
 */
function isSercret() {
    //数据展示
    $("#secretGradeDiv").show();
    $("#isAuthorizeDiv").show();
    $("#callGradeDiv").show();
}

/**
 * 选择非保密机构的时候对保密部分的操作
 */
function isNoSercret() {
    //对数据进行清理
    removeOptionAll("secretGrade");
    $("#isAuthorize1").removeAttr("checked");
    $("#isAuthorize2").removeAttr("checked");
    $("#callGrade").val("-1");
    //数据隐藏
    $("#secretGradeDiv").hide();
    $("#isAuthorizeDiv").hide();
    $("#callGradeDiv").hide();
}




/**
 * 添加机构的图片预览
 */
function imgContainerView(){
    //预览图片
    var config = {
        tip: "请上传格式为png, gif或者jpg的图片",
        fileId: "imgFile", //文件上传 input 的那个 id
        containerId: "containerImg", //预览图片的容器的ID
        imgStyle: "width:75px;height:75px;" //预览图的样式
    };
    var previewer = new ImgPrevirewer(config);
    previewer.preview();
}